package com.example.JcGQS.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.JcGQS.pojo.dto.*;
import com.example.JcGQS.pojo.entity.Goods;
import com.example.JcGQS.pojo.entity.GoodsCategory;
import com.example.JcGQS.pojo.vo.*;
import org.springframework.stereotype.Component;


import java.util.List;

/**
 * <p>
 * 物料表 服务类
 * </p>
 *
 * @author 末日
 * @date 2023/11/21
 */
public interface GoodsService {

    /**
     * 新增物料类型
     *
     * @return
     */
    void insertGoods(InsertGoodsDTO insertGoodsDTO, String token);

    /**
     * 删除物料类型
     *
     * @return
     */
    void deleteGoods(DeleteGoodsDTO deleteGoodsDTO, String token);

    /**
     * 修改物料类型
     *
     * @return
     */
    void updateGoods(UpdateGoodsDTO updateGoodsDTO, String token);

    /**
     * 搜索物料
     *
     * @param searchGoodsDTO
     * @param token
     */
    DataRecordsVO<GoodsListVo> searchGoods(SearchGoodsDTO searchGoodsDTO, String token);

    /**
     * 获取物料类型列表
     */
    DataRecordVo<GoodsListVo> goodsList(PageDTO pageDTO, String token);


    /**
     * @return List<GoodsVo>
     * @Title listCategory
     * @Description 所有物料分类
     */
    List<GoodsVo> listCategory();

    /**
     * @param goodsAttributeVo 请求参数
     * @return List<GoodsVo>
     * @Title listGoodsName
     * @Description 物料名称
     */
    List<GoodsVo> listGoodsName(GoodsAttributeVo goodsAttributeVo);

    /**
     * @param goodsAttributeVo 请求参数
     * @return List<GoodsVo>
     * @Title listSpecification
     * @Description 物料规格
     */
    List<GoodsVo> listSpecification(GoodsAttributeVo goodsAttributeVo);

    /**
     * @param goodsAttributeVo 请求参数
     * @return List<GoodsVo>
     * @Title listModel
     * @Description 物料型号
     */
    List<GoodsVo> listModel(GoodsAttributeVo goodsAttributeVo);


    /**
     * @return List<GoodsVo>
     * @Title listUnit
     * @Description 物料单位
     */
    List<GoodsVo> listUnit();

}
